Configuration d’application

2024 Conception logicielle

Chaque application fonctionne dans un environnement spécifique. Pour fonctionner correctement, il est nécessaire de configurer le comportement en fonction du contexte. La configuration est définie à différents niveaux, du plus général au plus spécifique :

  • Variable d’environnement ce sont des variables définies au niveau de l’environnement de l’application.

  • Arguments passés à un programme lors de son exécution.

  • Toggle peut contrôler l’activation d’une fonctionnalité dans le code source. Lorsque le drapeau est activé, la nouvelle fonctionnalité est active pour ces utilisateurs. Sinon, s’il est désactivé, elle est masquée et inaccessible.

App Configuration

Variable d’environnement

  • Liste toutes les variables d’environnement chargées dans le contexte courant

$ env
HOSTTYPE=x86_64
LANG=en_US.UTF-8
TERM=xterm-256color
XDG_RUNTIME_DIR=/mnt/wslg/runtime-dir
DISPLAY=:0
WAYLAND_DISPLAY=wayland-0
PULSE_SERVER=unix:/mnt/wslg/PulseServer
WSL2_GUI_APPS_ENABLED=1
WSLENV=WT_SESSION:WT_PROFILE_ID:
  • Charger les variables d’environnement à partir d’un fichier dotenv en Bash

export $(cat profile.env | xargs)
Application variadique

Arguments

  • Les arguments peuvent être passés via la ligne de commande. Exemple avec la commande find.

find /etc -type f -name *net*
  • Les arguments peuvent être écrits dans un fichier et utilisés via xargs.

$ cat filter_only_file_net.args
/etc
-type f
-name "*net*"

$ xargs -a filter_only_file_net.args find
/etc/netconfig
/etc/issue.net
/etc/systemd/networkd.conf
/etc/default/networking
/etc/java-17-openjdk/net.properties
/etc/networks
/etc/init.d/networking
/etc/perl/Net/libnet.cfg

Toggle

Le toggle permet d’activer ou de désactiver une fonctionnalité exécutée par un logiciel. L’implémentation est très simple, c’est un booléen associé à une variable.

Basiquement, cela peut être vérifié comme suit

toggles.is_activited(name) return true otherwise false.

L’implémentation dépend de :

  • la performance de la vérification de l’activation de la variable

  • si la valeur de la variable change pendant l’exécution ou uniquement au chargement du programme

  • la portée des toggles : s’il existe un besoin global de singleton